﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Data;
using System.Web.UI.WebControls;
using AjaxControlToolkit;

public partial class Admin_ArticleImages : System.Web.UI.Page
{
    int iArticleID;
    NewsType newstype;
    string sImagesGlobalPath;
    string sImagesPath = "../picture_library/";

    protected void Page_Load(object sender, EventArgs e)
    {
        sImagesGlobalPath = Server.MapPath("~/picture_library/");

        GetParameters();
        if(!IsPostBack)
            GetImagesFromDB();

        switch (newstype)
        {
            case NewsType.popular:
            case NewsType.news:
                lbl439x217.Text = "1. Большое изображение на Главной странице сайта ( Размер439х217 px).";
                lbl630x200.Text = "2. Большое изображение на странице Статья ( Размер 630х200 px).";
                lbl170x148.Text = "1. Изображение на предосмотр статьи ( Размер 170х148 px).";
                lbl96x66.Text = "2. Изображение1 на предосмотр статьи на Главной странице (Размер 96х66 px).";
                lbl81x56.Text = "3. Изображение2 на предосмотр статьи ( Размер 81х56 px).";
                break;

            case NewsType.deadSea:
                pnl439x217.Visible = false;
                pnl96x66.Visible = false;
                pnl81x56.Visible = false;
                lbl630x200.Text = "1. Большое изображение на странице Статья ( Размер 630х200px).";
                lbl170x148.Text = "1. Изображение на предосмотр статьи ( Размер 275х82 px).";
                break;

            case NewsType.MedicalTourism:
                lbl439x217.Text = "1. Большое изображение на Главной странице раздела ( Размер 606х148 px).";
                lbl630x200.Text = "2. Большое изображение на странице Статья ( Размер 630х200px).";
                lbl170x148.Text = "1. Изображение на предосмотр статьи ( Размер 170х148 px).";
                lbl81x56.Text = "2. Изображение2 на предосмотр статьи ( Размер 81х56 px).";
                pnl96x66.Visible = false;
                break;

            case NewsType.MedicalCenters:
            case NewsType.hotels:
                pnl439x217.Visible = false;
                pnl96x66.Visible = false;
                pnl81x56.Visible = false;
                lbl630x200.Text = "1. Большое изображение на странице Статья ( Размер 630х200px).";
                lbl170x148.Text = "1. Изображение на предосмотр статьи ( Размер 170х148 px).";
                break;

            case NewsType.Wiki:
                pnl439x217.Visible = false;
                pnl96x66.Visible = false;
                pnl81x56.Visible = false;
                lbl630x200.Text = "1. Большое изображение на странице Статья ( Размер 630х200px).";
                lbl170x148.Text = "1. Изображение на предосмотр статьи ( Размер 170х148 px).";
                break;

            case NewsType.aboutUS:
                pnl439x217.Visible = false;
                pnl96x66.Visible = false;
                pnl81x56.Visible = false;
                lbl630x200.Text = "1. Большое изображение на странице Статья ( Размер 630х200px).";
                pnl170x148.Visible=false;
                pnlSmallImages.Visible = false;
                break;
        }
    }

    private void GetImagesFromDB()
    {

        imgPrv439х217.ImageUrl = sImagesPath + "439x217.jpg";
        imgPrv630х200.ImageUrl = sImagesPath + "630x200.jpg";
        imgPrv170x148.ImageUrl = sImagesPath + "170x148.jpg";
        imgPrv96x66.ImageUrl = sImagesPath + "96x66.jpg";
        imgPrv81x56.ImageUrl = sImagesPath + "81x56.jpg";

        Dal.arParams.Clear();
        Dal.arParams.Add(iArticleID);
        DataTable DT= Dal.ExecuteDBsp("Admin_GetArticleImages", Dal.arParams);

        if(DT!=null)
            if (DT.Rows.Count > 0)
            {
                Session["439х217"] = DT.Rows[0]["img439x217"];
                Session["630х200"] = DT.Rows[0]["img630x200"];
                Session["170x148"] = DT.Rows[0]["img170x148"];
                Session["96x66"] = DT.Rows[0]["img96x66"];
                Session["81x56"] = DT.Rows[0]["img81x56"];

                imgPrv439х217.ImageUrl = sImagesPath + Session["439х217"].ToString();
                imgPrv630х200.ImageUrl = sImagesPath + Session["630х200"].ToString();
                imgPrv170x148.ImageUrl = sImagesPath + Session["170x148"].ToString();
                imgPrv96x66.ImageUrl = sImagesPath + Session["96x66"].ToString();
                imgPrv81x56.ImageUrl = sImagesPath + Session["81x56"].ToString();
                
            }
            //else
            //{
            //    Session["439х217"] = null;
            //    Session["630х200"] = null;
            //    Session["170x148"] =null;
            //    Session["96x66"] = null;
            //    Session["81x56"] = null;
            //}

    }

    private void GetParameters()
    {
        if (Request.QueryString["ID"] == null)
        {
            iArticleID = Convert.ToInt32(Session["iArticleID"]);
        }
        else
        {
            iArticleID = Convert.ToInt32(Request.QueryString["ID"]);
            Session["iArticleID"] = iArticleID;
        }

        if (ViewState["NewsType"] == null)
        {
            newstype = (NewsType)Convert.ToInt32(Request.QueryString["Type"]);
            ViewState["NewsType"] = newstype;
        }
        else
            newstype=(NewsType) Convert.ToInt32(ViewState["NewsType"]);
    }

    #region load images
    protected void upl439х217_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
    {
        string script = string.Empty;
        string[] sExtension = e.filename.Split('.');
        string sFileName = iArticleID + "_439x217_" + GenerateUniqueFileName() + "." + sExtension[sExtension.Length - 1];
        string sPath = sImagesGlobalPath + sFileName;
        upl439х217.SaveAs(sPath);

        Session["439х217"] = sFileName;

        ScriptManager.RegisterClientScriptBlock(upl439х217, upl439х217.GetType(), "img",
           "top.document.getElementById('ctl00_MainContent_imgPrv439х217').src='" + sImagesPath + sFileName + "';",
           true);
    }

    protected void upl630х200_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
    {
        string script = string.Empty;
        string[] sExtension = e.filename.Split('.');
        string sFileName = iArticleID + "_630x200_" + GenerateUniqueFileName() + "." + sExtension[sExtension.Length - 1];
        string sPath = sImagesGlobalPath + sFileName;
        upl630х200.SaveAs(sPath);

        Session["630х200"] = sFileName;

        ScriptManager.RegisterClientScriptBlock(upl630х200, upl630х200.GetType(), "img",
           "top.document.getElementById('ctl00_MainContent_imgPrv630х200').src='" + sImagesPath + sFileName + "';",
           true);
    }

    protected void upl170x148_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
    {
        string script = string.Empty;
        string[] sExtension = e.filename.Split('.');
        string sFileName = iArticleID + "_170x148_" + GenerateUniqueFileName() + "." + sExtension[sExtension.Length - 1];
        string sPath = sImagesGlobalPath + sFileName;
        upl170x148.SaveAs(sPath);

        Session["170x148"] = sFileName;

       ScriptManager.RegisterClientScriptBlock(upl170x148, upl170x148.GetType(), "img",
          "top.document.getElementById('ctl00_MainContent_imgPrv170x148').src='" + sImagesPath + sFileName + "';",
          true);
    }

    protected void upl96x66_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
    {
        string script = string.Empty;
        string[] sExtension = e.filename.Split('.');
        string sFileName = iArticleID + "_96x66_" + GenerateUniqueFileName() + "." + sExtension[sExtension.Length - 1];
        string sPath = sImagesGlobalPath + sFileName;
        upl96x66.SaveAs(sPath);

        Session["96x66"] = sFileName;

             ScriptManager.RegisterClientScriptBlock(upl96x66, upl96x66.GetType(), "img",
         "top.document.getElementById('ctl00_MainContent_imgPrv96x66').src='" + sImagesPath + sFileName + "';",
         true);
    }

    protected void upl81x56_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
    {
        string script = string.Empty;
        string[] sExtension = e.filename.Split('.');
        string sFileName = iArticleID+"_81x56_"+GenerateUniqueFileName() + "." + sExtension[sExtension.Length - 1];
        string sPath = sImagesGlobalPath + sFileName;
        upl81x56.SaveAs(sPath);

        Session["81x56"] = sFileName;

            ScriptManager.RegisterClientScriptBlock(upl81x56, upl81x56.GetType(), "img",
        "top.document.getElementById('ctl00_MainContent_imgPrv81x56').src='" + sImagesPath + sFileName + "';",
        true);
    }
    #endregion

    //Image name template
    public string GenerateUniqueFileName()
    {
        return String.Format("{0}{1}{2}{3}{4}{5}",
                              DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day,
                              DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
    }//GenerateUniqueFileName()

    protected void btnBack_Click(object sender, EventArgs e)
    {
        Response.Redirect("addarticle.aspx?id=" + iArticleID);
    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        string s439х217 = (Session["439х217"] != null) ? Session["439х217"].ToString() : string.Empty;
        string s630х200 = (Session["630х200"] != null) ? Session["630х200"].ToString() : string.Empty;
        string s170x148 = (Session["170x148"] != null) ? Session["170x148"].ToString() : string.Empty;
        string s96x66 = (Session["96x66"] != null) ? Session["96x66"].ToString() : string.Empty;
        string s81x56 = (Session["81x56"] != null) ? Session["81x56"].ToString() : string.Empty;

        Dal.arParams.Clear();
        Dal.arParams.Add(iArticleID);
        Dal.arParams.Add(s439х217);
        Dal.arParams.Add(s630х200);
        Dal.arParams.Add(s170x148);
        Dal.arParams.Add(s96x66);
        Dal.arParams.Add(s81x56);

        Dal.ExecuteDBsp("Admin_AddImagesToArticle", Dal.arParams);
        
        string sBackLink="default.aspx";
        switch (newstype)
        {
            case NewsType.MedicalTourism:
            case NewsType.popular:
            case NewsType.news:
                sBackLink = string.Format("newsstat.aspx?type={0}", (int)newstype);
                break;
            
            case NewsType.MedicalCenters:
                sBackLink = string.Format("medcenters.aspx");
                break;

            case NewsType.Wiki:
                sBackLink = string.Format("Wiki.aspx");
                break;

            case NewsType.hotels:
                sBackLink = string.Format("Hotels.aspx");
                break;
        }
        Response.Redirect(sBackLink);
        //GetImagesFromDB();
    }
}
